.TH "selinux_raw_context_to_color" "3" "08 April 2011" "SELinux API documentation"
.SH "NAME"
selinux_raw_context_to_color \- Return RGB color string for an SELinux security context
.
.SH "SYNOPSIS"
.B #include <selinux/selinux.h>
.sp
.BI "int selinux_raw_context_to_color(char *" raw ", "
.RS
.BI "char **" color_str ");"
.RE
.
.SH "DESCRIPTION"
.BR selinux_raw_context_to_color ()
returns a 
.I color_str
associated to the raw context 
.I raw
provided that the 
.BR mcstransd "(8)"
daemon is running, the policy is an MLS type policy (MCS or MLS) and there is a color configuration file
.BR \%secolor.conf (5)
(see the
.B FILES
section).
.sp
The 
.I color_str
string is a space separated list of eight hexadecimal RGB triples, each prefixed by a hash character (#). These represent the user:role:type:range components of the foreground and background colors. An example string is shown in the 
.B EXAMPLE
section.

The returned
.I color_str
string must be freed with 
.BR free "(3)." 

If a color has not been configured for a specific user, role, type and/or range component of context 
.IR raw ","
then
.BR \%selinux_raw_context_to_color ()
will select the color returned in 
.I color_str
in order of precedence as follows:
.RS
role, type, range
.br
user, type, range
.br
user, role, range 
.br
user, role, type 
.br
.RE

If there are no entries in the 
.BR secolor.conf (5)
file for any of the components of context 
.I raw
(or the file is not present), then the default string returned in 
.I color_str
is:
.sp
.RS
----- user ---- ---- role ----  ---- type ----  ---- range ----
.br
#000000 #ffffff #000000 #ffffff #000000 #ffffff #000000 #ffffff
.sp
.RE
.
.SH "RETURN VALUE"
On success, zero is returned.
.br
On failure, \-1 is returned with 
.I errno
set appropriately.
.
.SH "ERRORS"
.B ENOENT
If the 
.BR mcstransd "(8)"
daemon is not running. 
.
.SH "FILES"
.BR selinux_raw_context_to_color ()
obtains the translated entry from the active policy 
.BR secolor.conf "(5)"
file as returned by
.BR \%selinux_colors_path (3).
The file format is described in 
.BR \%secolor.conf (5).
.
.SH "NOTES"
1. The primary use of 
.BR selinux_raw_context_to_color ()
is to return a color that corresponds to a range, that can then be used to highlight information at different MLS levels.
.sp
2. The 
.BR mcstransd "(8)"
daemon process security level must dominate the 
.I raw
security level passed to it by the 
.BR selinux_raw_context_to_color ()
function. If not, the range color selected will be as defined by the order of precedence.
.
.SH "EXAMPLE"
.BR selinux_raw_context_to_color ()
returns the foreground and background colors of the context string components (user:role:type:range) as RGB triples as follows:
.sp

      user     :       role      :      type      :      range
.br
  fg       bg  :   fg       bg   :  fg       bg   :  fg       bg  
.br
#000000 #ffffff  #ffffff #000000  #d2b48c #ffa500  #000000 #008000
.br
 black   white :  white   black  : tan    orange  : black   green 
.br
.
.SH "SEE ALSO"
.ad l
.nh
.BR selinux "(8), " selinux_colors_path "(3), " mcstransd "(8), " secolor.conf "(5), " selinux_raw_to_trans_context "(3), " selinux_trans_to_raw_context "(3), " free "(3)"
